package Test03;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.function.IntFunction;

//方法引用（数组的构造方法)
/*
    方法引用（数组的构造方法)

        格式
            数据类型[]: :new
        目的:
            创建一个指定类型的数组
        需求:
            集合中存储一些整数，收集到数组当中

        细节:
            数组的类型，需要跟流中数据的类型保持一致。
*/
public class Test07 {
    public static void main(String[] args) {

        //1、创建集合并添加元素
        ArrayList<Integer> list = new ArrayList<>();
        Collections.addAll(list, 1, 2, 3, 4, 5);

        //2、收集到数组当中

        //常规方法
        Integer[] arr1 = list.stream().toArray(new IntFunction<Integer[]>() {
            @Override
            public Integer[] apply(int value) {
                return new Integer[value];
            }
        });

        System.out.println(Arrays.toString(arr1));

        System.out.println("------------------");

        //方法引用
        Integer[] arr2 = list.stream().toArray(Integer[]::new);

        //3、打印
        System.out.println(Arrays.toString(arr2));
    }
}
